// 第一题：
// 示例1：   输入: [2,2,1]输出: 1
// 输入: [4,1,2,1,2]输出: 4
//
// const singleNumber = function (nums: number[]): number {

// 	const result = nums.find((v, i) => {
// 		return nums.indexOf(v) === nums.lastIndexOf(v)
// 	})

// 	return result as number

//   // return nums.find((v, i) => {
//   //   return nums.indexOf(v) === nums.lastIndexOf(v);
//   // }) as number;
// };

// const result1 = singleNumber([2, 2, 1]);
// const result2 = singleNumber([4, 1, 2, 1, 2]);
// console.log(result1, result2);

// 第二题：
// 示例 1：
// 输入：nums1 = [1,2,2,1], nums2 = [2,2]
// 输出：[2]

// 示例 2：
// 输入：nums1 = [4,9,5], nums2 = [9,4,9,8,4]
// 输出：[9,4]
// 解释：[4,9] 也是可通过的

// 函数调用：
// var intersection = function (nums1: number[], nums2: number[]): number[] {
//   const reuslt = nums1.filter((v) => nums2.includes(v));
//   return [...new Set(reuslt)];
// };

// console.log(intersection([1, 2, 2, 1], [2, 2]));
// console.log(intersection([4, 9, 5], [9, 4, 9, 8, 4]));

// 第三题：
// 示例 1：
// 输入：ransomNote = "a", magazine = "b"
// 输出：false
// 示例 2：
// 输入：ransomNote = "aa", magazine = "ab"
// 输出：false
// 示例 3：
// 输入：ransomNote = "aa", magazine = "aba"
// // 输出：true
// const canConstruct = function (ransomNot: string, magazine: string): boolean {
//   const arr1 = ransomNot.split("");
//   const arr2 = magazine.split("");

//   while (arr1.length) {
//     const item = arr1.splice(0, 1)[0];
//     const index = arr2.findIndex((v) => v === item);
//     if (index !== -1) {
//       arr2.splice(index, 1);
//     } else {
// 			return false
// 		}
//   }
// 	return true
// };
// console.log(canConstruct("aa", "aba"));
// console.log(canConstruct("aaa", "aba"));
// console.log(canConstruct("abc", "bcd"));
// console.log(canConstruct("abc", "bcda"));

// function fn1(str: string): number {
// const arr = str.split(" ");
// return arr[arr.length - 1].length;
// return str.slice(str.lastIndexOf(' ')).length - 1
// }

// console.log(fn1('heelo 1231231231231231 1231231 1231 w123ord'));

// interface ListItem {
//   name: string;
//   type: string;
//   memory: string;
// }

// const list: ListItem[] = [
//   {
//     name: "apple",
//     type: "mini",
//     memory: "64G",
//   },
//   {
//     name: "华为",
//     type: "荣耀",
//     memory: "128G",
//   },
//   {
//     name: "小米",
//     type: "米10",
//     memory: "256G",
//   },
//   {
//     name: "apple",
//     type: "mini",
//     memory: "128G",
//   },
// ];

// const fn2 = (data: ListItem[], str: string): ListItem | ListItem[] => {
//   const result = data.filter((v) => {
// 		// 获取对象的所有的键值
//     const arr = Object.values(v);
//     return arr.includes(str);
//   });

//   return result.length <= 1 ? result[0] : result;
// };

// const s = fn2(list, "128G");
// const s1 = fn2(list, "小米");
// console.log(s, s1);

const fn3 = (nums: number[]): string => {
  return nums
    .filter((v, i) => {
      return v > nums[i - 1] && v > nums[i + 1];
    })
    .map((v) => nums.indexOf(v))
    .join(" 或 ");
};

console.log(fn3([1, 2, 3, 1]));
console.log(fn3([1, 10, 6, 2, 1, 3, 5, 6, 4]));
